<!doctype html>
<html>
  <head>
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <title>Mirror of https://pypi.org</title>

    <link rel="stylesheet" href="https://fonts.googleapis.com/css?family=Source+Sans+Pro:400,400italic,600,600italic,700,700italic|Source+Code+Pro:500">
    <style type="text/css" media="screen">

      body {
        margin: 0;
        font-family: "Source Sans Pro", Helvetica, Arial, sans-serif;
        color: #464646;
        font-size: 17px;
        line-height: 1.4;
        box-sizing: border-box;
      }

      .container {
        display: flex;
        justify-content: center;
        align-items: center;
        min-height: 100vh;
      }

      main {
        padding: 40px 20px;
        text-align: center;
      }

      .logo svg {
        display: block;
        margin: 0 auto;
        max-width: 250px;
        width: 100%;
      }

      h1 {
        font-size: 1.8em;
        margin: 30px 0 20px 0;
        color: #606060;
        font-weight: 600;
      }

      .callout-block {
        display: inline-block;
        padding: 20px;
        background-color: #0073b7;
        margin: 30px 0 0;
        border-radius: 6px;
        color: #fff;
        cursor: pointer;
        /*display: none;*/
      }

      .callout-block:hover {
        background-color: #006dad;
      }

      .callout-block--danger {
        background-color: #D52D40;
      }

      .callout-block--danger:hover {
        background-color: #c92538;
      }

      .callout-block__heading {
        font-size: 1.5rem;
        font-weight: 600;
        margin: 0;
      }

      .callout-block__link {
        display: block;
        color: #fff;
        font-size: 1.2rem;
        text-decoration: underline;
      }

      .footer {
        margin-top: 30px;
      }

      .footer a {
        color: #006dad;
        text-decoration: none;
        font-weight: bold;
      }
    </style>
  </head>
  <body>
    <div class="container">
      <main>
        <a href="/" class="logo">
          <svg xmlns="http://www.w3.org/2000/svg" aria-labelledby="pypi-logo-title" viewbox="0 0 248 186">
            <title id="pypi-logo-title">Python Package Index</title>
            <path fill="#f7f7f4" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M15.801 114.616l15.555 5.662 15.786-5.746-15.555-5.662zm15.623-12.783l15.556 5.662 15.785-5.746-15.555-5.662z"/>
            <path fill="#efeeea" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M31.424 101.833l15.556 5.662v18.282l-15.556-5.661z"/>
            <path fill="#f7f7f4" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M.178 138.76l15.555 5.663 15.786-5.746-15.556-5.662z"/>
            <path fill="#efeeea" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M.178 138.76l15.555 5.663v18.282L.178 157.044z"/>
            <path fill="#f7f7f4" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M.178 112.76l15.555 5.663 15.786-5.746-15.556-5.662z"/>
            <path fill="#fff" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M15.733 118.423v18.282l15.786-5.745v-18.283z"/>
            <path fill="#efeeea" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M.178 112.76l15.555 5.663v18.282L.178 131.044z"/>
            <path fill="#646464" d="M15.985 97.209l-.025.031a2.783 2.783 0 0 0-2.758 2.781 2.783 2.783 0 0 0 .053.532L1.51 114.937l7.647 9.364-3.87-9.364 9.985-12.228a2.783 2.783 0 0 0 .715.096 2.783 2.783 0 0 0 .715-.094l5.314 6.508 5.373 1.955-8.672-10.621a2.783 2.783 0 0 0 .051-.531 2.783 2.783 0 0 0-2.756-2.782l-.025-.03zm2.135-7.289a2.136 2.136 0 1 0-4.27 0v3.265a2.136 2.136 0 0 0 4.27 0V89.92zm-.98-.002v3.265a1.155 1.155 0 0 1-2.31 0v-3.265a1.154 1.154 0 1 1 2.31 0zm.98-11.211a2.136 2.136 0 1 0-4.27 0v3.266a2.136 2.136 0 0 0 4.27 0v-3.266zm-.98-.002v3.266a1.155 1.155 0 0 1-2.31 0v-3.266a1.154 1.154 0 1 1 2.31 0z"/>
            <path fill="#646464" d="M16.505 82.697v6.498a.518.518 0 1 1-1.04 0v-6.498a.518.518 0 1 1 1.04 0zm0 11.213v6.498a.518.518 0 1 1-1.04 0V93.91a.518.518 0 1 1 1.04 0zm0-22.463v6.498a.518.518 0 1 1-1.04 0v-6.498a.518.518 0 1 1 1.04 0z"/>
            <path fill="#efeeea" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M15.8 144.442l15.556 5.662v18.283l-15.555-5.662z"/>
            <path fill="#f7f7f4" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M15.8 125.978l15.556 5.662 15.786-5.746-15.555-5.661z"/>
            <path fill="#efeeea" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M15.8 125.978l15.556 5.662v18.283l-15.555-5.662z"/>
            <path fill="#fff" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M93.85 138.741v18.283l15.785-5.745v-18.283z"/>
            <path fill="#ffd242" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M78.226 144.423v18.282l15.786-5.745v-18.283z"/>
            <path fill="#fff" d="M91.151 148.88a2.617 3.737 35 0 1-3.032 4.33 2.617 3.737 35 0 1-3.031-2.122 2.617 3.737 35 0 1 3.031-4.33 2.617 3.737 35 0 1 3.032 2.123z"/>
            <path fill="#ffd242" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M62.603 150.104v18.283l15.786-5.746v-18.283z"/>
            <path fill="#fff" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M46.98 155.785v18.283l15.785-5.746V150.04z"/>
            <path fill="#efeeea" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M31.424 150.123l15.556 5.662v18.283l-15.556-5.662z"/>
            <path fill="#ffd242" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M93.85 120.278v18.282l15.785-5.745v-18.283z"/>
            <path fill="#ffc91d" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M78.294 96.152l15.556 5.662 15.785-5.746-15.555-5.662z"/>
            <path fill="#ffd242" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M93.85 101.814v18.282l15.785-5.745V96.068zm-15.624 24.145v18.282l15.786-5.745v-18.283z"/>
            <path fill="#3775a9" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M78.226 107.495v18.282l15.786-5.745v-18.283z"/>
            <path fill="#2f6491" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M62.671 83.369l15.555 5.662 15.786-5.746-15.555-5.661z"/>
            <path fill="#3775a9" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M78.226 89.03v18.283l15.786-5.745V83.285z"/>
            <path fill="#ffd242" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M62.603 131.64v18.283l15.786-5.746v-18.283z"/>
            <path fill="#3775a9" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M62.603 113.176v18.283l15.786-5.746V107.43zM46.98 137.321v18.283l15.785-5.746v-18.282z"/>
            <path fill="#2f6491" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M31.424 131.66l15.556 5.661v18.283l-15.556-5.662zm0-18.465l15.556 5.662 15.785-5.745-15.555-5.662z"/>
            <path fill="#3775a9" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M46.98 118.857v18.283l15.785-5.746v-18.282z"/>
            <path fill="#2f6491" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M31.424 113.195l15.556 5.662v18.283l-15.556-5.662zM47.048 89.05l15.555 5.662 15.786-5.746-15.556-5.661z"/>
            <path fill="#3775a9" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M62.603 94.712v18.283l15.786-5.746V88.966z"/>
            <path fill="#2f6491" stroke="#ccc" stroke-linejoin="bevel" stroke-width=".355" d="M47.048 89.05l15.555 5.662v18.283l-15.555-5.662z"/>
            <path fill="#fff" d="M71.528 100.584a2.617 3.737 35 0 1-3.032 4.33 2.617 3.737 35 0 1-3.032-2.123 2.617 3.737 35 0 1 3.032-4.33 2.617 3.737 35 0 1 3.032 2.123z"/>
            <path fill="#646464" d="M36.661 38.858c0-9.645-2.75-14.597-8.25-14.868a15.497 15.497 0 0 0-6.405 1.052c-1.659.594-2.776 1.182-3.363 1.776v23.021c3.518 2.208 6.643 3.234 9.367 3.073 5.765-.38 8.651-5.061 8.651-14.054zm6.785.4c0 4.9-1.15 8.967-3.46 12.201-2.576 3.66-6.146 5.546-10.71 5.65-3.441.11-6.986-.97-10.633-3.229v20.924l-5.9-2.105V26.256c.968-1.188 2.213-2.208 3.724-3.073 3.512-2.047 7.78-3.099 12.802-3.15l.084.083c4.59-.058 8.128 1.827 10.613 5.65 2.318 3.505 3.48 7.998 3.48 13.492zM79.508 52.99c0 6.572-.658 11.123-1.975 13.654-1.324 2.53-3.841 4.55-7.56 6.055-3.015 1.188-6.275 1.834-9.774 1.943l-.975-3.718c3.557-.484 6.062-.969 7.515-1.453 2.86-.968 4.822-2.453 5.9-4.441.865-1.62 1.292-4.713 1.292-9.29v-1.537a30.317 30.317 0 0 1-12.686 2.744c-2.905 0-5.468-.91-7.676-2.744-2.48-1.995-3.719-4.525-3.719-7.592V22.053l5.9-2.02v24.719c0 2.64.853 4.674 2.557 6.1 1.705 1.427 3.913 2.112 6.618 2.06 2.705-.058 5.603-1.104 8.683-3.15V20.923h5.9V52.99zm23.035 3.796c-.704.058-1.35.083-1.943.083-3.338 0-5.94-.794-7.8-2.388-1.852-1.595-2.782-3.796-2.782-6.605v-23.24h-4.04v-3.713h4.04v-9.858l5.895-2.098v11.956h6.63v3.712h-6.63v23.08c0 2.214.594 3.783 1.781 4.7 1.02.755 2.64 1.188 4.849 1.297v3.073zm35.727-.485h-5.901V33.525c0-2.317-.543-4.312-1.62-5.978-1.247-1.885-2.977-2.828-5.198-2.828-2.705 0-6.087 1.427-10.148 4.28v27.302h-5.9V1.86l5.9-1.859v24.797c3.77-2.744 7.889-4.119 12.363-4.119 3.124 0 5.655 1.052 7.592 3.15 1.943 2.099 2.911 4.713 2.911 7.838V56.3zm31.362-18.373c0-3.706-.704-6.766-2.105-9.187-1.665-2.95-4.254-4.506-7.753-4.667-6.469.374-9.697 5.01-9.697 13.893 0 4.073.672 7.476 2.027 10.206 1.73 3.48 4.326 5.197 7.786 5.14 6.495-.052 9.742-5.178 9.742-15.385zm6.462.039c0 5.274-1.35 9.664-4.041 13.17-2.963 3.925-7.056 5.894-12.28 5.894-5.177 0-9.212-1.97-12.123-5.894-2.64-3.506-3.958-7.896-3.958-13.17 0-4.958 1.427-9.129 4.28-12.525 3.015-3.602 6.98-5.41 11.88-5.41s8.889 1.808 11.962 5.41c2.853 3.396 4.28 7.567 4.28 12.525zm33.829 18.334h-5.9V32.234c0-2.64-.795-4.7-2.383-6.185-1.588-1.478-3.706-2.195-6.346-2.137-2.802.052-5.468.969-7.999 2.744v29.645h-5.9V25.927c3.395-2.473 6.52-4.087 9.373-4.842 2.692-.704 5.068-1.053 7.115-1.053 1.4 0 2.717.136 3.957.407 2.318.536 4.203 1.53 5.655 2.99 1.62 1.613 2.428 3.55 2.428 5.816V56.3z"/>
            <path fill="#646464" d="M221.391 14.428h1.014V8.07h2.402v-.758h-5.817v.758h2.401v6.358m4.315 0h.866V8.621l1.88 5.807h.964l1.959-5.787v5.787h.945V7.312h-1.25l-2.141 6.097-1.826-6.097h-1.397v7.116" font-family="Bitstream Vera Sans" font-size="15.164" font-weight="400" style="line-height:125%"/>
            <path fill="#646464" d="M120.607 82.731h2.988v-6.183h2.679c3.632 0 6.415-1.726 6.415-5.461 0-3.916-2.731-5.204-6.415-5.204h-5.667v16.848zm2.988-8.578v-5.874h2.447c2.447 0 3.71.696 3.71 2.808 0 2.06-1.211 3.066-3.71 3.066h-2.447zm10.502 5.177c0 2.216 1.546 3.71 3.762 3.71 1.494 0 2.782-.747 3.915-1.7h.077l.232 1.391h2.422v-7.496c0-3.53-1.546-5.462-4.714-5.462-2.01 0-3.787.773-5.178 1.649l1.082 1.984c1.107-.67 2.292-1.237 3.555-1.237 1.7 0 2.266 1.133 2.292 2.473-5.178.567-7.445 1.984-7.445 4.689zm2.886-.231c0-1.263 1.133-2.164 4.56-2.602v2.834c-.928.875-1.727 1.39-2.757 1.39-1.056 0-1.803-.489-1.803-1.622zm10.315-2.679c0 4.199 2.654 6.62 6.106 6.62 1.442 0 2.962-.567 4.147-1.623l-1.236-1.88c-.696.566-1.572 1.082-2.602 1.082-1.984 0-3.375-1.675-3.375-4.2 0-2.55 1.417-4.224 3.452-4.224.799 0 1.469.335 2.138.927l1.417-1.88c-.85-.825-2.086-1.469-3.71-1.469-3.374 0-6.337 2.422-6.337 6.647zm12.749 6.311h2.911v-3.22l1.984-2.267 3.246 5.487h3.22l-4.766-7.496 4.328-5.153h-3.246l-4.688 5.822h-.078v-11.36h-2.91V82.73zm12.642-3.401c0 2.216 1.546 3.71 3.761 3.71 1.494 0 2.782-.747 3.916-1.7h.077l.232 1.391h2.421v-7.496c0-3.53-1.545-5.462-4.714-5.462-2.01 0-3.787.773-5.178 1.649l1.082 1.984c1.108-.67 2.293-1.237 3.555-1.237 1.7 0 2.267 1.133 2.293 2.473-5.178.567-7.445 1.984-7.445 4.689zm2.885-.231c0-1.263 1.134-2.164 4.56-2.602v2.834c-.928.875-1.726 1.39-2.757 1.39-1.056 0-1.803-.489-1.803-1.622zm12.763 5.487c0-.593.31-1.16.98-1.675.489.13 1.03.18 1.725.18h1.726c1.443 0 2.241.284 2.241 1.263 0 1.082-1.39 2.035-3.426 2.035-2.01 0-3.246-.67-3.246-1.803zm-2.473.438c0 2.215 2.241 3.297 5.255 3.297 4.122 0 6.75-1.958 6.75-4.456 0-2.19-1.597-3.118-4.637-3.118h-2.241c-1.546 0-2.061-.438-2.061-1.159 0-.567.232-.876.618-1.21a4.665 4.665 0 0 0 1.726.334c2.68 0 4.792-1.494 4.792-4.302 0-.876-.31-1.649-.722-2.138h2.319v-2.19h-4.534a5.7 5.7 0 0 0-1.855-.309c-2.653 0-4.998 1.623-4.998 4.534 0 1.494.799 2.705 1.649 3.35v.102c-.721.515-1.391 1.365-1.391 2.344 0 1.03.49 1.7 1.133 2.113v.103c-1.159.721-1.803 1.649-1.803 2.705zm5.41-8.167c-1.237 0-2.215-.927-2.215-2.55 0-1.597.978-2.499 2.215-2.499 1.236 0 2.19.928 2.19 2.5 0 1.622-.98 2.55-2.19 2.55zm7.597-.437c0 4.173 2.73 6.62 6.234 6.62 1.598 0 3.117-.567 4.328-1.365l-1.004-1.855c-.928.593-1.855.927-2.937.927-2.035 0-3.478-1.288-3.736-3.58h8.038c.077-.31.129-.825.129-1.391 0-3.53-1.804-6.003-5.23-6.003-2.962 0-5.822 2.525-5.822 6.647zm2.86-1.134c.257-2.112 1.545-3.22 3.04-3.22 1.725 0 2.576 1.21 2.576 3.22h-5.616zm-81.124 33.721h2.988V92.16h-2.988v16.848zm6.987 0h2.963v-8.836c1.056-1.03 1.777-1.571 2.885-1.571 1.391 0 1.984.772 1.984 2.86v7.547h2.962v-7.934c0-3.195-1.185-5.024-3.89-5.024-1.726 0-3.014.902-4.147 2.01h-.103l-.206-1.7h-2.448v12.648zm13.668-6.311c0 4.173 2.035 6.62 5.204 6.62 1.365 0 2.653-.747 3.58-1.674h.104l.206 1.365h2.447V90.82h-2.963v4.585l.103 2.035c-.979-.85-1.88-1.39-3.323-1.39-2.756 0-5.358 2.524-5.358 6.646zm3.065-.026c0-2.654 1.314-4.174 2.937-4.174.85 0 1.7.284 2.576 1.057v5.899c-.85.979-1.674 1.417-2.653 1.417-1.83 0-2.86-1.469-2.86-4.2zm11.424.026c0 4.173 2.731 6.62 6.234 6.62 1.598 0 3.118-.567 4.328-1.365l-1.004-1.855c-.928.593-1.855.927-2.937.927-2.035 0-3.478-1.288-3.735-3.58h8.037c.077-.31.129-.825.129-1.391 0-3.53-1.803-6.003-5.23-6.003-2.962 0-5.822 2.525-5.822 6.647zm2.86-1.134c.257-2.112 1.545-3.22 3.04-3.22 1.726 0 2.576 1.21 2.576 3.22h-5.616zm9.225 7.445h3.091l1.34-2.499c.36-.773.747-1.52 1.107-2.241h.103c.438.721.876 1.494 1.288 2.241l1.546 2.5h3.195l-4.02-6.26 3.736-6.39h-3.065l-1.211 2.396c-.31.696-.67 1.443-.98 2.138h-.102a87.248 87.248 0 0 1-1.16-2.138l-1.416-2.396h-3.195l3.761 6.054-4.018 6.595z" font-family="Source Sans Pro" font-weight="600" letter-spacing="0" style="line-height:125%;-inkscape-font-specification:'Source Sans Pro Semi-Bold'" word-spacing="0"/>
          </svg>
        </a>
        <h1>You've reached PyPI's static mirror</h1>
        <p>
          This could mean that PyPI is down for maintenance, or is having an outage.
        </p>

        <p>
          In any event: This serves a full mirror, current as of: <br><strong><span id="message">timestamp.</span></strong><br>
        </p>

        <div id="active-maintenance" class="callout-block" style="display: none;">
          <h2 class="callout-block__heading">Active Maintenance</h2>
        </div>

        <div id="active-incidents" class="callout-block callout-block--danger" style="display: none;">
          <h2 class="callout-block__heading" >Active Incidents</h2>
        </div>

        <p class="footer">
          Check <a href="https://status.python.org">https://status.python.org</a> for updates.
        </p>
      </main>
    </div>
    <script>
      var xmlhttp;
      if (window.XMLHttpRequest) { // code for IE7+, Firefox, Chrome, Opera, Safari
          xmlhttp = new XMLHttpRequest();
      }
      else { // code for IE6, IE5
          xmlhttp = new ActiveXObject("Microsoft.XMLHTTP");
      }
      xmlhttp.onreadystatechange = function() {
          if (xmlhttp.readyState == 4 && xmlhttp.status == 200) {
              var time;
              time = xmlhttp.responseText.replace('T', ' ').replace(/(\d{4})(\d{2})(\d{2})/, "$1-$2-$3") + "UTC";
              document.getElementById("message").innerHTML = document.getElementById("message").innerHTML.replace('timestamp', time);
          }
      }
      xmlhttp.open("GET", "/last-modified", true);
      xmlhttp.send();
    </script>
    <script type="text/javascript" src="https://cdn.statuspage.io/se-v2.js"></script>
    <script>
      var warehouseStatus = new StatusPage.page({ page : '2p66nmmycsj3', component: 'xt7f24hjvspn' });

      function unhide(elementId) {
        var x = document.getElementById(elementId);
        if (x.style.display === "none") {
          x.style.display = "block";
        }
      }

      function jsUcfirst(string) {
        return string.charAt(0).toUpperCase() + string.slice(1);
      }

      function addIncident(type, incident) {
        var x = document.getElementById(type);
            elem = document.createElement("span");
            link = document.createElement("a");
        link.innerHTML = jsUcfirst(incident.status) + ': ' + incident.name;
        link.href = incident.shortlink;
        link.classList.add("callout-block__link");
        elem.appendChild(link);
        x.appendChild(elem);
      }

      warehouseStatus.incidents({
        filter : 'unresolved',
        success: function(data) {
          for (incident in data.incidents) {
            unhide("active-incidents");
            addIncident("active-incidents", data.incidents[incident]);
          }
        }
      })

      warehouseStatus.scheduled_maintenances({
        filter : 'active',
        success : function(data) {
          for (incident in data.scheduled_maintenances) {
            unhide("active-maintenance");
            addIncident("active-maintenance", data.scheduled_maintenances[incident]);
          }
        }
      })

    </script>
  </body>
</html>
